/**
 * 
 */
package truerefactor.refactor;

import java.util.List;

import truerefactor.graph.ClassNode;
import truerefactor.graph.CodeGraph;
import truerefactor.graph.CodeNode;

/**
 * An Implementation of the Remove Setting Method Refactoring Technique
 * 
 * @author Isaac
 */
public class RemoveSettingMethod extends Refactoring {

    /**
     * 
     */
    public RemoveSettingMethod()
    {
        this.name = "Remove Setting Method";
        this.description = "";
    }

    /*
     * (non-Javadoc)
     * @see
     * truerefactor.refactor.Refactoring#execute(truerefactor.graph.CodeNode
     * [])
     */
    @Override
    public void execute(CodeGraph graph)
    {
        // 1. Check that the setting method is called only in the constructor,
        // or
        // in a method called by the constructor.

        // 2. Modify the constructor to access the variables directly
        // a. You cannot do this if you have a subclass setting the private
        // fields of a superclass. In this case you should try to provide a
        // protected superclass method (ideally a constructor) to set these
        // values. Whatever you do, don't give the superclass method a name that
        // will confuse it with a setting method.

        // 3. Remove the setting method and make the field final

    }
}
